package bintree.heap;

import seqlist.queue.Queue;

/**
 * 基于最大堆的 优先级队列
 */

//其实所谓的优先级队列就是调用最大堆中的方法，包装了一层而已
public class PriorityQueue implements Queue<Integer> {
    private MaxHeap heap;

    //构造方法
    public PriorityQueue() {
        this.heap = new MaxHeap();
    }

    @Override
    public void offer(Integer val) {
        heap.add(val);
    }

    @Override
    public Integer poll() {
        return heap.extractMax();//取中当前最大堆的最大值
    }

    @Override
    public Integer peek() {
        return heap.peekMax();//查看当前数组的最大元素
    }

    @Override
    public boolean isEmpty() {
        return heap.isEmpty();
    }
}
